/**
 * 使用 createStore 创建 store
 *
 * 最新版本推荐使用 reudx toolkit
 *               createStore 已经建议废弃
 */

import { createStore } from "redux";

// 引入 reducer
import rootReducer from "./reducer";

// 创建仓库
const store = createStore(rootReducer);

/**
 * 从 store 本身推断出 `RootState` 和 `AppDispatch` 类型
 *
 * ReturnType 接受一个函数类型，返回的是该函数类型的返回值类型
 */
export type RootState = ReturnType<typeof store.getState>;

/**
 * 推断出类型
 */
export type AppDispatch = typeof store.dispatch;

export default store;
